﻿using System;
using System.Windows.Forms;
using Scommesse.Presenters.Admin;

namespace Scommesse.View.Admin
{
    public partial class RisultatoDialog : Form
    {
        private IRisultatoPresenter _risultatoPresenter;

        public RisultatoDialog()
        {
            InitializeComponent();
        }

        public void AddListener(IRisultatoPresenter presenter)
        {
            _risultatoPresenter = presenter;
        }

        #region Properties

        public String AddEvento
        {
            set { ListaEventiComboBox.Items.Add(value); }
        }

        public int PunteggioA
        {
            get { return Int16.Parse(InserisciPunteggioATextBox.Text); }
        }

        public int PunteggioB
        {
            get { return Int16.Parse(InserisciPunteggioBTextBox.Text); }
        }

        public String NomeEvento
        {
            get { return ListaEventiComboBox.SelectedItem.ToString(); }
        }

        public String PunteggioAError
        {
            set { PuntAErrorProvider.SetError(InserisciPunteggioATextBox, value); }
        }

        public String PunteggioBError
        {
            set { PuntBErrorProvider.SetError(InserisciPunteggioBTextBox, value); }
        }

        public String EventoError
        {
            set { EventoErrorProvider.SetError(ListaEventiComboBox, value); }
        }

        #endregion

        // Inizializza la form appena viene showata per la prima volta
        private void RisultatoDialog_Shown(object sender, EventArgs e)
        {
            ListaEventiComboBox.Items.Clear();
            InserisciPunteggioATextBox.Clear();
            InserisciPunteggioBTextBox.Clear();

            _risultatoPresenter.Load_View();
        }

        private void ConfermaAggiungiRisultatoButton_Click(object sender, EventArgs e)
        {
            EventoErrorProvider.Clear();
            PuntAErrorProvider.Clear();
            PuntBErrorProvider.Clear();

            _risultatoPresenter.ConfermaAggiungiRisultato();
        }

        private void AnnullaAggiungiRisultatoButton_Click(object sender, EventArgs e)
        {
            Close();
        }

        #region Auto Click On Enter

        private void ListaEventiComboBox_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Enter)
                ConfermaAggiungiRisultatoButton.PerformClick();
        }

        private void InserisciPunteggioATextBox_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Enter)
                ConfermaAggiungiRisultatoButton.PerformClick();
        }

        private void InserisciPunteggioBTextBox_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Enter)
                ConfermaAggiungiRisultatoButton.PerformClick();
        }

        #endregion

        private void InserisciPunteggioATextBox_KeyPress(object sender, KeyPressEventArgs e)
        {
            Utility.NumericTextBox.BlockChars(sender, e);
        }

        private void InserisciPunteggioBTextBox_KeyPress(object sender, KeyPressEventArgs e)
        {
            Utility.NumericTextBox.BlockChars(sender, e);
        }
    }
}